<?php //
include_once("Conexion.php");

//Declaracion
class M_Usuario {
    
    private $id_usuario;
    private $id_empleado;
    private $id_rol;
    private $usuario;
    private $clave;
    private $usuario_creac;
    private $usuario_modif;
    
    function ValidarLogin() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT u.id_usuario, u.id_persona, u.username, p.id_rol
        FROM tbl_usuario u
        inner join tbl_perfil p on u.id_usuario = p.id_usuario
        where u.username='$this->usuario' and u.userpassword='$this->clave' and u.eliminado=false ";
        try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
            pg_free_result($rs);
            pg_close($cn);
        } catch (exception $e) {
            try {
                pg_free_result($rs);
            } catch (exception $e) {
                
            }
            try {
                pg_close($cn);
            } catch (exception $e) {
                
            }
        }
        return $registros;
    }
    
        //Get y Set de la clase
    function getId_Usuario() {
        return $this->id_usuario;
    }
    function getId_Empleado() {
        return $this->id_empleado;
    }
    function getId_Rol() {
        return $this->id_rol;
    }
    
    function getUsuario() {
        return $this->usuario;
    }

    function getClave() {
        return $this->clave;
    }

    function setId_Usuario($id_usuario) {
        $this->id_usuario = $id_usuario;
    }
    
    function setId_Empleado($id_empleado) {
        $this->id_empleado = $id_empleado;
    }
    
    function setId_Rol($id_rol) {
        $this->id_rol = $id_rol;
    }
    
    function setUsuario($usuario) {
        $this->usuario = $usuario;
    }

    function setClave($clave) {
        $this->clave = $clave;
    }
    
    function setUsuario_Creac($usuariocreac) {
        $this->usuario_creac = $usuariocreac;
    }
    
    function setUsuario_Modif($usuariocreac) {
        $this->usuario_modif = $usuariocreac;
    }
    
    function setId_Ad_Client($id_ad_client) {
        $this->id_ad_client = $id_ad_client;
    }
    
    function getId_Ad_Client() {
        return $this->id_ad_client;
    }
    
    function getId_Ad_Org() {
        return $this->id_ad_org;
    }
    
    function setId_Ad_Org($id_ad_org) {
        $this->id_ad_org = $id_ad_org;
    }  
    
    function BuscarUsuarios_Todos() {
        //Le deciamos que la locacion es lenguaje español
        setlocale(LC_CTYPE, 'es');
        //La sentencia a ejecutar
        $sql = " SELECT id_usuario, id_persona, username
        FROM tbl_usuario
        where eliminado=false ";
 
        //try {
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Ejecutamos la sentencia
            $rs = pg_query($cn, $sql);
            //Creamos un array que almacenara los datos de la sentencia
            $registros = array();
            //Recorremos el resultado de la consulta y lo almacenamos en el array
            while ($reg = pg_fetch_array($rs)) {
                array_push($registros, $reg);
            }
            //Liberamos recursos
          //  pg_free_result($rs);
            //pg_close($cn);
        //} catch (exception $e) {
          //  try {
                //pg_free_result($rs);
            //} catch (exception $e) {

            //}
            //try {
                pg_close($cn);
            //} catch (exception $e) {

            //}
        //}
        return $registros;
    }
    function update_Usuario() {
       
            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
          //  pg_query($cn,"BEGIN");
            //Elaboramos la sentencia
            $sql="UPDATE rrhh.tbl_usuario
   SET  id_empleado='$this->id_empleado', id_rol='$this->id_rol', usuario='$this->usuario', clave='$this->clave',
                    usuario_modif='$this->usuario_modif', fecha_modif=now()
 WHERE id_usuario='$this->id_usuario'";

            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
              //  pg_query($cn,"ROLLBACK");
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
               // pg_query($cn,"COMMIT");
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        return $rpta;
    }
  
  //metodo utilizado para eliminar un rol
     function delete_Usuario() {

            //Creamos un objeto de la clase conexion
            $miconexion = new Conexion();
            //Obtenemos la conexion
            $cn = $miconexion->conectar();
            //Comenzamos la transaccion
            //mysql_query("BEGIN", $cn);
            //Elaboramos la sentencia
           $sql = " update rrhh.tbl_usuario set eliminado = true  where id_usuario ='$this->id_usuario' ";
          
            //Ejecutamos la sentencia
            $result = pg_query($cn,$sql);
           
            if (!$result) {
                //Si no obtiene resultados anulamos la transaccion
            //    mysql_query("ROLLBACK", $cn);
                $rpta = false;
            } else {
                //Si obtiene resultados confirmamos la transaccion
              //  mysql_query("COMMIT", $cn);
                $rpta = true;
            }
            //Cerramos la conexion
            pg_close($cn);
        
        
        return $rpta;
    }
    
}
?>